package org.example.mqtt;
import java.util.ArrayList;
import org.example.mqtt.model.NotifService;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.TextView.OnEditorActionListener;
public class AddServiceDialogFragment extends DialogFragment implements OnClickListener{
EditText servUriEditText;
EditText nameEditText;
Button saveButton;
Button cancelButton;
IServiceChangeListener activityCallback;
// override the regular onAttach to set the callback to the activity
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
activityCallback = (IServiceChangeListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.add_service_dialog_frag, container);
nameEditText = (EditText) view.findViewById(R.id.txt_name);
servUriEditText = (EditText) view.findViewById(R.id.txt_service_uri);
getDialog().setTitle("Add Service");
saveButton = (Button) view.findViewById(R.id.buttonSave);
cancelButton = (Button) view.findViewById(R.id.buttonCancel);
saveButton.setOnClickListener(this);
cancelButton.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
if(v == saveButton) {
// Try to insert
// sanity test
String dest = servUriEditText.getText().toString().trim();
String name = nameEditText.getText().toString().trim();
if(null != dest && null != name && !(name.isEmpty()) && !(dest.isEmpty())){
Activity parent = getActivity();
MqttApplication app = (MqttApplication) parent.getApplication();
int addServResult = app.addService(name, dest);
switch (addServResult) {
case MqttApplication.ADD_SERVICE_ERR_EXISTING_SERVICE_NAME:
toast("Error: service name already registered");
break;
case MqttApplication.ADD_SERVICE_ERR_EXISTING_SERVICE_URI:
toast("Error: service URI already registered");
break;
case MqttApplication.ADD_SERVICE_OK:
activityCallback.notifyServiceListChanged(true,dest);
break;
}
}else{
toast("sanity check failed");
}
}
if(v == cancelButton) {
toast("service not added");
}
this.dismiss();
}
private void toast(String message)
{
Toast.makeText(getActivity(), message, Toast.LENGTH_LONG).show();
}
}